package com.kfm.pm;

import java.util.Random;
import java.util.Scanner;

// 1 --> 浇水 2 --> 修剪 3 --> 打药  4 --> 生虫
public class Exec03 {

    static int grow = 11; // 树初始成长值，当成长值 归零或小于0时，树死亡

    public static void main(String[] args) {
        // 生成随机数
        Random rand = new Random();

        // 输入操作次数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入操作次数");
        int n = sc.nextInt();
        int count = 0;
        int prev = -1;
        for (int i = 0; i < n; i++) {
            int type = rand.nextInt(4) + 1; // [1, 4]

            // switch 7之后额外支持 String   int byte short char 枚举
            // 整型： byte 1 short 2 int 4 long 8 char 2  浮点 float 4  double 8 boolean 1
            if (isAlive()) {
                switch (type) {
                    case 1 -> water();
                    case 2 -> cut();
                    case 3 -> fertilize();
                    // 连续生虫三次，生长值额外 - 20
                    case 4 -> {
                        if (prev == 4) {
                            count ++;
                        }
                        if (count == 2) {
                            grow -= 20;
                            count = 0;
                        }
                        if (isAlive()) {
                            worms();
                        } else {
                            System.out.println("game over");
                            return;
                        }

                    }
                }
            } else {
                System.out.println("game over" + grow);
                return;
            }
            prev = type;
        }
        System.out.println(grow);

    }

    /**
     * 浇水，每浇一次水成长值 +10
     */
    public static void water() {
        grow += 10;
    }

    /**
     * 修剪树，每修剪一次成长值 +5
     */
    public static void cut() {
        grow += 5;

    }

    /**
     * 打药，每打药一次成长值 +20
     */
    public static void fertilize() {
        grow += 20;
    }

    /**
     * 生虫，每生虫一次成长值 -10
     * 连续生虫三次，生长值额外 - 20
     */
    public static void worms() {
        grow -= 10;
    }

    public static boolean isAlive() {
//        if (grow <= 0) {
//            return false;
//        }
//        return true;
        return grow > 0;
    }
}
